home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: Taifun
/
Taifun 175 (1991-09-10)(Manewaldt, A.)(DE)(PD).zip
/
Taifun 175 (1991-09-10)(Manewaldt, A.)(DE)(PD).adf
/
Term
/
Source.LZH
/
TransferPanel.c
< prev
next >
Wrap
C/C++ Source or Header
|
1991-07-17
|
6KB
|
277 lines
/* $Revision Header * Header built automatically - do not edit! *************
*
* (C) Copyright 1990 by Olaf 'Olsen' Barthel & MXM
*
* Name .....: TransferPanel.c
* Created ..: Monday 21-Jan-91 20:12
* Revision .: 0
*
* Date Author Comment
* ========= ======== ====================
* 21-Jan-91 Olsen Created this file!
*
* $Revision Header ********************************************************/
#include "TermGlobal.h"
STATIC struct Gadget *GadgetList;
STATIC struct Gadget *GadgetArray[3];
STATIC BYTE LastStatus = -1;
STATIC struct Menu *TransferMenu;
STATIC SHORT PositionX = -1,PositionY = -1;
#define WIDTH (70*8+20)
#define HEIGHT (16*8+24+13)
#define ORIGIN_X 10
#define ORIGIN_Y 12
enum { MEN_ABORT=1,MEN_SKIP,MEN_QUITPANEL };
STATIC struct NewMenu NewTransferMenu[] =
{
{ NM_TITLE, "Project", 0 , 0, 0, (APTR)0},
{ NM_ITEM, "Abort Entire Transfer", "A", 0, 0, (APTR)MEN_ABORT},
{ NM_ITEM, "Skip Current File", "S", 0, 0, (APTR)MEN_SKIP},
{ NM_ITEM, NM_BARLABEL, 0 , 0, 0, (APTR)0},
{ NM_ITEM, "Quit", "Q", 0, 0, (APTR)MEN_QUITPANEL},
{ NM_END, 0, 0 , 0, 0, (APTR)0}
};
STATIC struct Gadget *
CreateAllGadgets(struct Gadget **GadgetArray,struct Gadget **GadgetList,APTR VisualInfo,UWORD TopEdge)
{
struct Gadget *Gadget;
struct NewGadget NewGadget;
UWORD Counter = 0;
if(Gadget = CreateContext(GadgetList))
{
NewGadget . ng_TextAttr = &DefaultFont;
NewGadget . ng_VisualInfo = VisualInfo;
NewGadget . ng_Width = 208;
NewGadget . ng_Height = 12;
NewGadget . ng_GadgetText = "_Abort Entire Transfer";
NewGadget . ng_GadgetID = Counter;
NewGadget . ng_Flags = 0;
NewGadget . ng_LeftEdge = 10;
NewGadget . ng_TopEdge = HEIGHT - 3 - NewGadget . ng_Height;
GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
GT_Underscore, '_',
TAG_DONE);
NewGadget . ng_GadgetText = "_Skip Current File";
NewGadget . ng_GadgetID = Counter;
NewGadget . ng_LeftEdge = WIDTH - 10 - NewGadget . ng_Width;
GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
GT_Underscore, '_',
TAG_DONE);
}
return(Gadget);
}
VOID
TransferInfo(SHORT X,SHORT Y,BYTE *String,...)
{
if(String && TransferWindow)
{
va_list VarArgs;
va_start(VarArgs,String);
VSPrintf(SharedBuffer,String,VarArgs);
va_end(VarArgs);
if(String[0] == '%' && String[2] == 'd')
{
strcat(SharedBuffer," ");
SharedBuffer[14] = 0;
}
Move(TransferWindow -> RPort,ORIGIN_X + X * 8,ORIGIN_Y + 6 + Y * 8);
Text(TransferWindow -> RPort,SharedBuffer,strlen(SharedBuffer));
}
}
BYTE
TransferPanel(UBYTE *Title)
{
if(Status != STATUS_DOWNLOAD && Status != STATUS_UPLOAD)
{
LastStatus = Status;
Status = STATUS_DOWNLOAD;
}
else
LastStatus = -1;
if(CreateAllGadgets(&GadgetArray[0],&GadgetList,VisualInfo,Screen -> WBorTop + Screen -> Font -> ta_YSize + 1))
{
if(TransferMenu = CreateMenus(NewTransferMenu,
GTMN_FrontPen, 0,
TAG_DONE))
{
if(LayoutMenus(TransferMenu,VisualInfo,
GTMN_TextAttr,&DefaultFont,
TAG_DONE))
{
if(PositionX == -1)
PositionX = (Screen -> Width - WIDTH) >> 1;
if(PositionY == -1)
PositionY = (Screen -> Height - HEIGHT) >> 1;
if(TransferWindow = OpenWindowTags(NULL,
WA_Width, WIDTH,
WA_Height, HEIGHT,
WA_Left, PositionX,
WA_Top, PositionY,
WA_Activate, TRUE,
WA_DragBar, TRUE,
WA_DepthGadget, TRUE,
WA_CloseGadget, TRUE,
WA_RMBTrap, TRUE,
WA_CustomScreen,Screen,
WA_IDCMP, IDCMP_CLOSEWINDOW | BUTTONIDCMP | IDCMP_MENUPICK,
WA_Title, Title,
TAG_DONE))
{
BYTE Pen1,Pen2;
switch(Config . ColourMode)
{
case COLOUR_AMIGA: Pen1 = 1;
Pen2 = 3;
break;
case COLOUR_EIGHT: Pen1 = 4;
Pen2 = 7;
break;
case COLOUR_SIXTEEN: Pen1 = 15;
Pen2 = 8;
break;
case COLOUR_MONO: Pen1 = Pen2 = 1;
break;
}
PushWindow(TransferWindow);
AddGList(TransferWindow,GadgetList,(UWORD)-1,(UWORD)-1,NULL);
RefreshGList(GadgetList,TransferWindow,NULL,(UWORD)-1);
GT_RefreshWindow(TransferWindow,NULL);
SetMenuStrip(TransferWindow,TransferMenu);
TransferWindow -> Flags &= ~WFLG_RMBTRAP;
SetAPen(TransferWindow -> RPort,Pen1);
SetBPen(TransferWindow -> RPort,0);
SetDrMd(TransferWindow -> RPort,JAM2);
TransferInfo(0, 0,"Protocol..........:");
TransferInfo(0, 2,"File..............:");
TransferInfo(0, 3,"Size..............:");
TransferInfo(0, 5,"Bytes Transferred.: Blocks Transferred:");
TransferInfo(0, 6,"Block Check Type..: Block Size........:");
TransferInfo(0, 8,"Estimated Time....: Elapsed Time......:");
TransferInfo(0,10,"Message...........:");
TransferInfo(0,11,"Last Error........:");
TransferInfo(0,13,"Number Of Errors..: Number Of Timeouts:");
TransferInfo(0,15,"Packet Type.......: Packet Delay......:");
TransferInfo(0,16,"Characters/Second.: Character Delay...:");
SetAPen(TransferWindow -> RPort,Pen2);
TransferInfo(20, 0,"Unknown");
TransferInfo(20, 2,"-");
TransferInfo(20, 3,"-");
TransferInfo(20, 5,"-");
TransferInfo(55, 5,"-");
TransferInfo(20, 6,"-");
TransferInfo(55, 6,"-");
TransferInfo(20, 8,"-");
TransferInfo(55, 8,"-");
TransferInfo(20,10,"-- None --");
TransferInfo(20,11,"-- None --");
TransferInfo(20,13,"-");
TransferInfo(55,13,"-");
TransferInfo(20,15,"-");
TransferInfo(55,15,"-");
TransferInfo(20,16,"-");
TransferInfo(55,16,"-");
return(TRUE);
}
}
}
}
return(FALSE);
}
VOID
DeleteTransferPanel()
{
if(FileMatch)
MatchEnd(FileAnchor);
if(LastStatus != -1)
Status = LastStatus;
LastStatus = -1;
if(TransferWindow)
{
PositionX = TransferWindow -> LeftEdge;
PositionY = TransferWindow -> TopEdge;
TransferWindow -> Flags |= WFLG_RMBTRAP;
ClearMenuStrip(TransferWindow);
if(GadgetList)
RemoveGList(TransferWindow,GadgetList,(UWORD)-1);
PopWindow();
CloseWindow(TransferWindow);
TransferWindow = NULL;
}
if(TransferMenu)
FreeMenus(TransferMenu);
TransferMenu = NULL;
if(GadgetList)
FreeGadgets(GadgetList);
GadgetList = NULL;
}